package cn.iocoder.yudao.module.api.product.sku.dto;

import jakarta.annotation.Nonnull;
import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.util.ArrayList;
import java.util.List;

/**
 * 产品 SKU 更新库存/销量 Request DTO
 *
 * @author LeeYan9
 * @since 2022-08-26
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public class ProductSkuUpdateStockOrSalesCountReqDTO {

    /**
     * 产品 SKU
     */
    @NotNull(message = "产品 SKU项不能为空")
    private List<Item> items;

    @Nonnull
    public List<Item> getItems() {
        if (items == null) {
            items = new ArrayList<>();
        }
        return items;
    }

    @Data
    public static class Item {

        /**
         * 产品 SKU 编号
         */
        @NotNull(message = "产品 SKU 编号不能为空")
        private Long id;

        /**
         * 库存变化数量
         *
         * 正数：增加库存
         * 负数：扣减库存
         */
        @NotNull(message = "库存变化数量不能为空")
        private Integer incCount;

    }

}
